package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.WmsOwnerOrdertype;
import com.jy.wms.pojo.WmsPacking;
import com.jy.wms.pojo.WmsRejected;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
   * @ClassName: WmsRejectedMapper.java
   * @Description: TODO(这里用一句话描述这个类的作用)
   * @Author Jane
   * @Date Tue Jan 16 17:18:20 CST 2018
   */
   public interface WmsRejectedMapper extends BaseDao<WmsRejected>{

    /**
     * 根据货主ID 查询 入库的收发类别
     * @param hzid
     * @return
     */
    public List<WmsOwnerOrdertype> getOrderTypeCk(@Param("hzid") String hzid);

    /**
     * 检查明细是否全部退货 1部分退货 2全部退货
     * @param fyddid
     * @return
     */
    public Integer getCountByThzt(@Param("fyddid") String fyddid);

    /**
     * 更新发运订单退货状态
     * @return
     */
    public Integer updateWmsshipmentOrder(@Param("fyddid") String fyddid,@Param("thzt") String thzt);
    /**
     * 更新发运订单明细退货状态
     * @return
     */
    public Integer updateWmsshipmentOrderDetailed(@Param("fyddmxid") String fyddmxid,@Param("thzt") String thzt);


    /**
     * 根据订单明细ID 获取可退货数量
     * @param fyddmxid 订单明细ID
     * @return
     */
    public Integer getThsl(@Param("fyddmxid") String fyddmxid);

    /**
     * 根据货品ID 查找对应的包装
     * @param fphpid
     * @return
     */
    public WmsPacking getPack(@Param("fphpid") String fphpid);

    /**
     * 根据退货单号查重
     * @param thdh
     * @return
     */
       public Integer getCountByThdh(@Param("thdh") String thdh);

   /**
    * 插入一条记录
    * @param entity 实体对象
    * @return int
    */
    public Integer baseInsert(@Param("WmsRejected") WmsRejected entity);

   /**
    * 插入一条记录（匹配有值的字段）
    * @param entity 实体对象
    * @return int
    */
   public Integer baseInsertSelective(@Param("WmsRejected") WmsRejected entity);

   /**
    * 删除（根据主键ID删除）
    * @param id 主键
    * @return int
    */
   public Integer baseDeleteByPrimaryKey(@Param("id") String id);

   /**
    * 删除（根据ID 批量删除）
    * @param idList 主键ID列表
    * @return int
    */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);

    /**
     * 根据要求查询所有的发运订单
     * @param map 需要传入page、rows，可选参数sobh,lxr,lxdh,xxdz
     * @return
     */
    public List<Map<String,Object>> getSo(@Param("map") Map<String,Object> map);

    /**
    * 分页查询
    * @param entity 实体
    * @return List<WmsRejected>
    */
    public List<WmsRejected>  baseSelectPage(@Param("WmsRejected") WmsRejected entity);

    /**
    * 查询（根据主键ID查询）
    * @param id 主键ID
    * @return User
    */
    public WmsRejected  baseSelectByPrimaryKey(@Param("id") String id);

   /**
    * 查询（根据ID 批量查询）
    * @param idList 主键ID列表
    * @return list
    */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsRejected> idList);

   /**
    *修改 （匹配有值的字段）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKeySelective(@Param("WmsRejected") WmsRejected entity);

   /**
    *修改（根据主键ID修改）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKey(@Param("WmsRejected") WmsRejected entity);
}
